1、inotify主要功能
	它是一个内核通知用户空间程序文件系统变化的机制，可以监测添加、删除、以及更新等操作
2、初始化inotify
	初始化一个新的inotify实例并返回与之关联文件描述符
	成功返回文件描述符，失败返回-1
	int inotify_init(void);
3、添加一个watch
	添加一个watch到inotify队列
	fd: 通过inotify_init得到的文件描述符
	pathname: 要监视的目录或文件
	mask: 要监视的事件
		IN_ATTRIB 文件属性被修改
		IN_CLOSE_WRITE 可写文件被关闭
		IN_CLOSE_NOWRITE 不可写文件被关闭
		IN_CREATE 文件/文件夹被创建
		IN_DELETE 文件/文件夹被删除
		IN_DELETE_SELF 被监控的对象本身被删除
		IN_MODIFY 文件被修改
		IN_MOVE_SELF 被监控的对象本身被移动
		IN_MOVED_FROM 文件被移出被监控目录
		IN_MOVED_TO 文件被移入被监控目录
		IN_OPEN 文件被打开
	成功返回watch描述符，失败返回-1
	int inotify_add_watch(int fd, const char *pathname, uint32_t mask);
3、删除一个watch
	从inotify队列中删除一个watch
	fd: 通过inotify_init得到的文件描述符
	wd: 通过inotify_add_watch得到的watch描述符
	成功返回0，失败返回-1
	int inotify_rm_watch(int fd, int wd);
4、读取事件
	通过read函数读取事件，可以一次读取多个事件，一次最多可读多少事件由buf的长度决定
	ssize_t read(int fd, void *buf, size_t count);
	//事件结构体
	struct inotify_event
	{
        __s32           wd;             //watch 描述符
        __u32           mask;           //发生的事件
        __u32           cookie;
        __u32           len;            //目标名称长度，包括用于对齐所填充的字段
        char            name[0];        //目标名称，是变长的
	};
5、关闭inotify
	通过close可以关闭inotify
	int close(fd);
